const express = require('express');
const bodyParser = require("body-parser");
// const multer = require("multer");
const fs = require("fs");
const app = express();

app.use(express.static("www"));
app.use(bodyParser.urlencoded({ extended: false }));
// 端口号报错可以多切换几个8080、3000、3030
app.listen(3000, () => {
    // 服务器运行成功后的回调函数
    console.log("服务器启动成功,http://localhost:3000");
})
app.post("/zhuce",(req,res)=>{
    // 获取客户端传递过来的数据
    console.log(req.body); //{ username: '123', password: '123' }
    // 先判断是不是第一个用户
    // users.txt的内容是否为空
    var data = fs.readFileSync("./users.txt");
    // console.log("data"); //{12 34 45}
    // console.log("data",data.toString());  //"{ username: 'aaa', password: '123' }${ username: 'aaa', password: '123' }"
    if(data.toString()){
        // console.log("有值");
        var arr = data.toString().split("$"); //["{ username: 'aaa', password: '123' }","{ username: 'aaa', password: '123' }"]
        var arr1 = arr.map((item)=>JSON.parse(item));
        // console.log("----",arr1); //[{ username: 'aaa', password: '123' },{ username: 'bbb', password: '123' }]
        var isShow = true;
        for(var i = 0;i < arr1.length;i++){
            if(req.body.username == arr1[i].username){
                isShow = false;
            }
        }

        if(isShow){
            // 没有当前这个用户
            var str = "$" + JSON.stringify(req.body);
            fs.appendFile("./users.txt",str,function(err){
                if(!err){
                    // console.log("添加成功");
                    // res.send("");
                    // 会以json字符串的形式讲数据响应
                    res.json({success:1,data:"添加成功"})
                }
            })
        }else{
            // 有当前这个用户
            // console.log("当前用户已存在");
            res.json({success:0,data:"当前用户已存在"})
        }

    }else{
        // console.log("没有值");
        //在没有值的情况下至直接设置req.body添加进users.txt
        var str = JSON.stringify(req.body);
        fs.appendFile("./users.txt",str,function(err){
            if(!err){
                // console.log("添加成功");
                res.json({success:1,data:"添加成功"})
            }
        })
    }

})

// 登录信息
app.post("/login",function(req,res){
    // console.log("登录接收到的数据");
    // console.log(req.body);
    // 判断当前用户是否存在
    // 用户存在再判断密码是否正确

    // 读取users.txt文件
    var data = fs.readFileSync("./users.txt",);
    // console.log("获取到的data的值");
    // console.log(data);
    // 获取的.txt文件的内容 是整个字符串
    // console.log(data.toString());
    var arr = data.toString().split("$");
    // console.log("数组arr包含了很多字符串");
    // console.log(arr);
    var arr1 = arr.map((item) => JSON.parse(item));
    // 得到的数组内包裹了多个对象
    // console.log(arr1);

    // 假设当前用户不存在
    var isShow = false,pass = null;
    for (var i = 0; i < arr1.length; i++) {
        if (req.body.username == arr1[i].username) {
            isShow = true;
            pass = arr1[i].password;
            
        }
        }
        if(isShow){
            if(req.body.password == pass) {
                res.json({success:1,data:"登录成功"})
            }else{
                res.json({success:0,data:"密码错误"})
            }
            }else{
                // 用户不存在
                res.json({success:0,data:"登录失败"})
            }
})

